package com.turing.post.organization.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * @author zxp
 * @Mar 12, 2013
 */
@Remote
@Local
public interface IssueFeePolicyDao {

	/**
	 * 根据主键查询
	 * 
	 * @param feePolicyId
	 * @return
	 */
	public IssueFeePolicy getIssueFeePolicyByFeePolicyId(BigInteger feePolicyId);

	/**
	 * 管理费策略查询列表
	 */
//	public List<IssueFeePolicy> getIssueFeePolicyListByCond(
//			String issueCompanyNo, String businessType,
//			BigInteger cardClassicId, BigInteger toCardClassicId,
//			String startCardSeqNo, String endCardSeqNo, String startDate,
//			String endDate, String amountType, BigInteger cardFaceId,
//			Integer page);

	/**
	 * 分页查询列表
	 */
	public List<IssueFeePolicy> getIssueFeePolicyList(PCPSWebInput input,
			String businessType, BigInteger cardFaceId,
			BigInteger cardClassicId, String FeeType, String Status,
			Integer page);

	/**
	 * 总记录数
	 */
	public BigInteger getIssueFeePolicyTotal(PCPSWebInput input,
			String businessType, BigInteger cardFaceId,
			BigInteger cardClassicId, String FeeType, String Status);

	/**
	 * 新增
	 * 
	 * @param issueFeePolicy
	 * @throws PCPSApplicationException
	 */
	public void insert(IssueFeePolicy issueFeePolicy)
			throws PCPSApplicationException;

	/**
	 * 修改
	 * 
	 * @param issueFeePolicy
	 * @throws PCPSApplicationException
	 */
	public void update(IssueFeePolicy issueFeePolicy)
			throws PCPSApplicationException;

	/**
	 * 删除
	 * 
	 * @param issueFeePolicy
	 * @throws PCPSApplicationException
	 */
	public void delete(BigInteger issueFeePolicy)
			throws PCPSApplicationException;

	/**
	 * 查询满足条件的资费策略
	 * 
	 * @return
	 */
	public List<IssueFeePolicy> getIssueFeePolicyByBusiness(IssueFeePolicy ifp);

	/**
	 * 根据发卡商资费策略对象获取与该对象执行条件相同的总数
	 * 
	 * @param ifp
	 * @return
	 */
	public Integer getIssueFeePolicyCountByIFP(IssueFeePolicy ifp);
}
